const koa = require("koa");
const app = new koa();
const router = require("koa-router")();
const render = require("koa-art-template");
const path = require("path")
const axios = require("axios")
const bodyParser = require("koa-bodyparser")

render(app,{
    /* __dirname 当前文件所在的文件夹 */
    root:path.join(__dirname,'pages'),
    extname:".html"
})
/* 中间件 */
/* cookies 保存数据的一种方式，一般是保存在浏览器客户端
作用：可以让我们在同一个浏览器中访问同一个域名时共享数据
*/

router.get("/",async ctx=>{
    var html = await axios.get("http://192.168.4.18:8000/")
    await ctx.render("index",{arr:html.data.result})
})
router.get("/login",async ctx=>{
    // ctx.cookies.set("name","zheng",{
    //     maxAge:1000*6,    //设置cookies的时长
    //     expires:"2020-12-24",
    //     httpOnly:false  // 设置cookie是否可以在客户端读取 false可以读取，true不能读取
    // })
    await ctx.render("login")
})
router.get("/music",async ctx=>{
    await ctx.render("music.html")
})
router.get("/friend",async ctx=>{
    await ctx.render("friend.html")
})
router.post("/doLogin",async ctx=>{
    console.log(ctx.request.body);   // post传值
    var {username,pwd} = ctx.request.body
    var data ={username:"zheng",pwd:123456}
    if(data.username == username && data.pwd == pwd){
        // 登录成功设置cookies
        ctx.cookies.set("name","login")
        await ctx.redirect("/")   //路由重定向
    }else{
        ctx.body=(`<script>alert("登录失败用户名或密码错误");location.href="/login"</script>`)
    }
})
app.use( async (ctx,next)=>{
    if(ctx.path == "/login" || ctx.path == "/doLogin"){
        await next();
    }else{
        if(ctx.cookies.get("name")){
            await next()
        }else{
            await ctx.redirect("/login")
        }
    }
})


app.use(bodyParser())
app.use(router.routes())
app.listen(3000)